home *** CD-ROM | disk | FTP | other *** search
Wrap
DECLARE SUB presentacion () DECLARE SUB juego () DECLARE SUB rectangulo (x, I, c) DECLARE SUB elije (a1, a2) COMMON SHARED b() AS STRING, p() AS INTEGER, t() AS INTEGER, mov AS INTEGER DIM b(3) AS STRING, p(2) AS INTEGER, t(2) AS INTEGER CLS juego END SUB elije (a1, a2) t(1) = a1: t(2) = a2: p(1) = 29: p(2) = 50 DO FOR I = 1 TO 2 DO LOCATE 23, p(I): PRINT CHR$(219) a$ = INPUT$(1): LOOP UNTIL INSTR("123", a$) > 0 LOCATE 23, p(I): PRINT a$: t(I) = VAL(a$) NEXT I LOCATE 25, 5: PRINT "¿Correcto? (s/n/f) [s]": LOCATE 25, 29: PRINT CHR$(219): a$ = INPUT$(1): LOCATE 25, 25: PRINT "n": LOCATE 25, 27: PRINT " ": IF INSTR("fF", a$) > 0 THEN END LOOP WHILE (INSTR("nN", a$) > 0) OR (b(t(1)) = "") OR (RIGHT$(b(t(2)), 1) > RIGHT$(b(t(1)), 1)) mov = mov + 1: LOCATE 23, 60: PRINT "Movimientos: "; mov LOCATE 25, 25: PRINT "s": LOCATE 25, 29: PRINT " " a1 = t(1) a2 = t(2) END SUB SUB juego DO presentacion DO elije a1, a2 c = VAL(RIGHT$(b(a1), 1)) rectangulo a1, LEN(b(a1)), 1 rectangulo a2, LEN(b(a2)) + 1, c + 1 IF LEN(b(3)) = 5 THEN LOCATE 7, 5: PRINT "¡¡ L O C O N S E G U I S T E !!": LOCATE 9, 5: PRINT "Pulsa cualquier tecla...(Otra partida: 'S' )": EXIT DO LOOP x$ = INPUT$(1): CLS b(1) = "": b(2) = "": b(3) = "": mov = 0 LOOP WHILE x$ = "s" OR x$ = "S" END SUB SUB presentacion SCREEN 12 DRAW "c9bm4,303m194,303bm225,303m415,303bm446,303m636,303" FOR I = 1 TO 3: LOCATE 21, I * 28 - 16: PRINT I: NEXT I FOR j = 1 TO 5: rectangulo 1, j, j + 1: NEXT j LOCATE 2, 24: PRINT " T O R R E S D E H A N O I" LOCATE 23, 1: PRINT "Coloca las piezas de la bandeja '1' en la bandeja '3'": PRINT " * moviendo unicamente las piezas superiores": PRINT " * sin que una pieza grande pueda colocarse encima de una pequeña": PRINT _ " * ayudándote de la bandeja vacía '2'" LOCATE 28, 17: PRINT "--- Pulsa cualquier tecla para continuar...---": a$ = INPUT$(1) LOCATE 23, 1: PRINT STRING$(480, " ") LINE (0, 0)-(639, 459), , B LOCATE 23, 5: PRINT "Utiliza las teclas numericas. Pulsa cualquier tecla para continuar...": a$ = INPUT$(1) LOCATE 23, 5: PRINT STRING$(70, " ") DEF SEG = 0 POKE &H417, PEEK(&H417) OR &H20 LOCATE 23, 5: PRINT "* Mueve de la bandeja a la bandeja " DRAW "bm217,349s81rdlus1bm385,349s81rdlu" END SUB SUB rectangulo (x, y, c) Q$ = MID$("012345", c, 1) IF c = 1 THEN b(x) = LEFT$(b(x), LEN(b(x)) - 1) ELSE b(x) = b(x) + Q$ DRAW "c" + Q$ + "bm" + STR$((x - 1) * 219 + 100) + "," + STR$(300 - 27 * y) + "s10" + "l" + STR$(33 - 4 * c) + "u10r" + STR$(66 - 8 * c) + "d10l" + STR$(33 - 4 * c) + "bm-1,-1p" + Q$ + "," + Q$ END SUB